package com.campus.service.impl;

import com.campus.dao.ClassDao;
import com.campus.model.Class;
import com.campus.service.ClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @desc: 班级服务实现类，用于处理班级相关的业务逻辑。
 * @author: hjm
 * @date: 2024/11/22
 */
@Service
public class ClassServiceImpl implements ClassService {

    /**
     * 班级数据访问对象，用于与数据库交互。
     */
    private final ClassDao classDao;

    /**
     * 构造函数，注入 ClassDao 依赖。
     *
     * @param classDao 班级数据访问对象
     */
    @Autowired
    public ClassServiceImpl(ClassDao classDao) {
        this.classDao = classDao;
    }

    /**
     * 创建班级。
     *
     * @param cls 班级对象
     * @return 受影响的行数
     */
    public int createClass(Class cls) {
        return classDao.createClass(cls);
    }

    /**
     * 更新班级信息。
     *
     * @param cls 班级对象
     * @return 受影响的行数
     */
    @Override
    public int updateClass(Class cls) {
        return classDao.updateClass(cls);
    }

    /**
     * 将学生添加到班级。
     *
     * @param classId    班级ID
     * @param studentIds 学生ID列表
     * @return 受影响的行数
     */
    @Override
    public int addStudentsToClass(int classId, List<Integer> studentIds) {
        return classDao.addStudentsToClass(classId, studentIds);
    }

    /**
     * 将教师分配到班级。
     *
     * @param classId    班级ID
     * @param teacherIds 教师ID列表
     * @return 受影响的行数
     */
    @Override
    public int assignTeachersToClass(int classId, List<Integer> teacherIds) {
        return classDao.assignTeachersToClass(classId, teacherIds);
    }
}